﻿using FluentNHibernate.Mapping;

namespace Neturion.Dados
{
    public class MapTitulo : ClassMap<Titulo>
    {
        public MapTitulo()
        {
            Table("titulos");
            Id(x => x.MovimentoId).CustomSqlType("BIGINT");
            Map(x => x.DataCadastro);
            Map(x => x.DataEmissao);
            Map(x => x.DataExtorno);
            Map(x => x.DataQuitado);
            Map(x => x.DataVencimento);
            Map(x => x.Desconto);
            Map(x => x.DescontoCofins);
            Map(x => x.DescontoCssl);
            Map(x => x.DescontoInss);
            Map(x => x.DescontoIr);
            Map(x => x.DescontoIss);
            Map(x => x.Descricao);
            Map(x => x.Documento);
            Map(x => x.Historico);
            Map(x => x.JurosTaxas);
            Map(x => x.EnumSituacaoMovimento).CustomType(typeof(EnumSituacaoMovimento));
            Map(x => x.EnumTipoMovimentoFinanceiro).CustomType(typeof(EnumTipoMovimentoFinanceiro));
            Map(x => x.Multa);
            Map(x => x.Valor);
            Map(x => x.ValidadePagamento);
            Map(x => x.NossoNumero);
            Map(x => x.Ipte);
            Map(x => x.RegistroRetorno);
            References(x => x.Usuario).Not.LazyLoad();
            References(x => x.MovimentoFinanceiro).Not.LazyLoad();
            HasMany<Pagamento>(x => x.ListaPagamentos).Not.LazyLoad().Cascade.AllDeleteOrphan();
        }
    }
}